room(2.4.2):
    description: You're outside, standing in a grassy field. In the horizon,
                 mountains surround you from all directions. You are in a
                 valley. The valley is covered with grass, but the mountains
                 are grey, and have snowy white peaks.

                 There is a stone staircase here leading underground.

                 Far above you, in sky, there is a cloud.
    exits: down, up.6, north.4, south.4, east.4, west.4

exit(4):
    succeed: You make a few steps in the grassy field.
    new_location: 2.4.2

action(fly|fly_up):
    succeed: $(equals:flied,0;Want to fly, eh? You start flapping your right
             wing. For a moment is seems hopeless, but then a miracle happens.
             You're taking off, leaving the ground. Excited, you stop flapping
             and land safely.

             Looks like you can 'go up' now by flying.)$ #(flied=1)#

             $(equals:flied,1;I think we got the idea. You can fly. Just use
             "go" as you're used to. And fly safely!)$
    fail: I don't know how to fly.
    require_inventory: right_wing

exit(6):
    require_inventory: right_wing
    equals: flied,1

room(2.4.3):
    description: You're in the sky, beneath the cloud. You can see the grassy
                 field below, and the cloud above.

                 Some birds are flying nearby.
    exits: down, up.6

room(2.4.4):
    description: You're in the sky, beneath the cloud. You can see the grassy
                 field below, and the cloud above.

                 Some pigeons are flying nearby.
    exits: down, up.6

room(2.4.5):
    description: You're in the sky, beneath the cloud. You can see the grassy
                 field below, and the cloud above.

                 Some angels are flying nearby.
    exits: down, up.6

room(2.4.6):
    description: You're in the sky, beneath the cloud. You can see the grassy
                 field below, and the cloud above.

                 You're the only one crazy enough to fly this high.
    exits: down, up.6

item(scale):
    on_examine: It's a metal balance scale. But one of the pans is much larger
                and heavier than the other. Dropping items into the smaller one
                could perhaps create balance.

                $(require_here:briefcase;There's a briefcase on the smaller pan.)$
                $(require_here:shovel;There's a shovel on the smaller pan.)$
                $(require_here:shard;There's a glass shard on the smaller pan.)$
                $(require_here:blue_lock;There's a blue lock on the smaller pan.)$

action(drop_briefcase):
    succeed: You put the briefcase on the smaller pan.
    require_here: scale
    require_inventory: briefcase
    lose: briefcase
    drop: briefcase

action(drop_shovel):
    succeed: You put the shovel on the smaller pan.
    require_here: scale
    require_inventory: shovel
    lose: shovel
    drop: shovel

action(drop_shard):
    succeed: You put the glass shard on the smaller pan.
    require_here: scale
    require_inventory: shard
    lose: shard
    drop: shard

action(drop_blue_lock):
    succeed: You put the blue lock on the smaller pan.
    require_here: scale
    require_inventory: blue_lock
    lose: blue_lock
    drop: bluc_lock

exit(8):
    succeed: You try to open the door. And... it opens! You walk through.
    fail: You try to open the door. And... it doesn't open.
    require_here: scale,briefcase,shovel,shard,blue_lock

room(2.4.7):
    description: You are inside a cloud. It's a bit cold here, but it could be
                 worse.

                 There's an ad here, written on the cloud in red, bold letters.

                 There's a tap here, in the cloud. But no sink.

                 There's a metal balance scale standing here. Like the ones
                 they use to weigh justice.

                 There's a door to the north.
    items: scale, tap, ad
    exits: down, north.8

item(ad):
    on_examine: "New! Store all your pictures on the cloud!

                - Automatic backup, never worry again about disk failure!
                - Tired of reading long Terms of Use? Great! Get simple terms
                  anyone can underand, such as "Your data belogs to us"!
                - Access from any computer, requiring just a web browser!
                - Never worry again about your privacy being accidetally
                  respected! Get FREE periodic intentional leaks of your most
                  personal pictures to 3rd party companies!

                Hurry up and register at http://greedy.com, before all the free
                accounts are taken!"

item(tap):
    on_examine: It's a regular home tap, serving tap water. There's no sink
                under it, though.

                Did you know tap water is generally meant to be good for any
                use of humans, including drinking? If you live in a developed
                country, you can just drink tap water!

                All those mineral water companies just want us to think tap
                water isn't good, and by scaring us they hope to get us to buy
                their bottled water. Don't listen to their lies! Drink from the
                tap. Countries provide tap water at low costs because water is
                a basic right. Fight for this right, drink from the tap!

                Bottles trash the planet. Not all bottles are recycled
                properly, and anyway as long as we use bottles, there's more
                manufacturing of them. More plastic, more toxics, more
                pollution. Don't let them force-sell you bottled water. Just
                keep a few bottles at home, and fill them - with tap water -
                whenever you outside for long time.

                "Fun" fact, two of the bottled water companies in the US
                actually use filtered tap water! And imagine what mineral water
                companies do to nature, to the planet, when they place their
                gigantic factories and plants in the middle of beautiful
                nature, destroying it and blocking access to it.

                It's that's not enough, some of the bottled drink companies - I
                don't remember which ones exactly - make their drinks using
                water they selfishly steal from wells and water sources in
                third world countries, leaving the local people to... die.
                Let's show them what we think by refusing to fund their
                actions!

                If you can (you probably do, if you're playing this), drink
                tap!

action(fill_glass|fill_glass_with_tap|fill_glass_using_tap|fill_glass_from_tap):
    succeed: You fill the glass with tap water. #(filled=1)#
    require_inventory: glass
    equals: drank,1
    require_here: tap

action(take_red_key):
    succeed: You get the red key out of the glass.
    require_inventory: glass
    equals: filled,1
    gain: red_key
    !require_inventory: red_key

exit(7):
    require_inventory: right_wing,left_wing
    equals: flied,1
    fail: It's too high here to fly with a single wing.

room(2.5.7):
    description: You're in the sky. There's a cloud beneath. Looking up, you
                 see another cloud above.

                 It's a bit difficult to fly this high.
    exits: down, up.7

room(2.5.8):
    description: You're in the sky. There's a cloud beneath. Looking up, you
                 see another cloud above.

                 It's somewhat difficult to fly this high.

                 There's wind pushing the cloud to the south, and you feel it
                 pulling you too. It's not too strong to resist, though.
    exits: down, up.7, south

room(2.5.9):
    description: You're in the sky. There's a cloud beneath. Looking up, you
                 see another cloud above.

                 It's quite difficult to fly this high.
    exits: down, up.7

room(2.5.10):
    description: You're in the sky. There's a cloud beneath. Looking up, you
                 see another cloud above.

                 It's very difficult to fly this high. You can't go further up
                 here, the wind is too strong and the wings are barely holding
                 you.

                 $(require_here:glue;Hmmm there is a bottle of glue flying
                 around.)$
    items: glue
    exits: down

items(glue):
    on_examine: A bottle of organic, fully recyclable glue.

                $(equals:glued,0;The bottle is full.)$
                $(equals:glued,1;The bottle is half-full.)$
                $(equals:glued,2;The bottle is empty.)$

exit(9):
    require_inventory: oar
    less_than: oarb,1
    fail: It's a small cloud, where can you go? And it's too high to fly, even
          with two wings.

action(tie_oar):
    succeed: #(oarb-1)#
    require_inventory: rope, oar
    lose: rope

action(glue_oar):
    succeed: #(glued+1)# #(oarb-1)#
    require_inventory: glue, oar
    less_than: glued,2
    fail: $(require_inventory:glue;It's empty.)$

action(row|paddle):
    succeed: $(equals:paddled,0;Want to row, eh? You start paddling with your
             oar. For a moment is seems hopeless, but then a miracle happens.
             The cloud seems to have moved a bit. Excited, you stop paddling
             and slow down safely.

             Looks like you can 'go south' now by paddling.)$ #(paddled=1)#

             $(equals:paddled,1;I think we got the idea. You can paddle. Just
             use "go" as you're used to. And paddle safely!)$
    fail: I don't know how, or why would you, row or paddle.
    require_inventory: oar
    equals: oarb,0

room(2.4.8):
    description: You're in the sky. There's a cloud beneath. Looking up, you
                 see another cloud above.

                 ----- #(_write_to=ans)#

                 "Free software, free _____".
    exits: north, up.10

exit(10):
    equals: ans,"society"
    require_inventory: right_wing,left_wing

room(2.4.9):
    description: You're in the sky. There's a cloud beneath. Looking up, you
                 see another cloud close above.

                 ----- #(_write_to=ans)#

                 "An Individual has not started living fully until they can
                 rise above the narrow confines of individualistic concerns to
                 the broader concerns of humanity.

                 Every person must decide at some point, whether they will walk
                 in light of creative altruism or in the darkness of
                 destructive selfishness.

                 This is the judgment: Life's most persistent and urgent
                 question is: 'What are you doing for _____?'"
                 (Martin Luther King Jr.)
    exits: down, up.11

exit(11):
    equals: ans,"others"
    require_inventory: right_wing,left_wing

room(2.4.10):
    description: You're in the sky. There's a cloud beneath. Looking up, you
                 see another cloud very close above.

                 ----- #(_write_to=ans)#

                 "A good person will resist an evil system with his whole soul.
                 Disobedience of the laws of an evil state is therefore a
                 _____." (Gandhi)
    exits: down, up.12

exit(12):
    equals: ans,"duty"
    require_inventory: right_wing,left_wing

room(2.4.11):
    description: You're standing on a cloud, high in the sky. There's another
                 cloud far below. Quite far to the south, you see another small
                 cloud.
    exits: down, south.9

room(2.3.11):
    description: You're standing on a cloud, high in the sky. There's another
                 cloud far below. Far to the south, you see another small
                 cloud.
    exits: north, south.9

room(2.2.11):
    description: You're standing on a cloud, high in the sky. There's another
                 cloud far below. A bit far to the south, you see another small
                 cloud.
    exits: north, south.9

room(2.1.11):
    description: You're standing on a cloud, high in the sky. There's another
                 cloud far below.

                 To the south, you see another cloud, and an orange-colored
                 tent standing on the cloud.
    exits: north, south.9

room(2.0.11):
    description: You're inside a large orange-colored tent, standing on a
                 cloud.

                 $(equals:pressed,0;
                 There is an old man with a long beard here.
                 $(equals:done,0;He says:

                 "Hello, my name is Richard. Welcome to my humble home!

                 I assume you'd like to return to your home too. You came to
                 the right place. Through this laptop here, I control the
                 transportation system which takes people to and from this
                 place back to their homes. Once I activate the system, all you
                 need to do is jump into the pool on the other side of the
                 house, and you will be taken home.

                 However, as I'm a religious person, your departure won't be
                 possible without some holy bread. Do you have any?
                 #(talked=1)#
                 )$)$

                 There is a small desk here. There is a laptop on the desk.
                 It's open, and the screen is displaying some complex graphical
                 interface.

                 To the east is the other side of the tent.
    items: old_man, laptop, desk
    exits: north, east

action(give_man_bread|give_old_man_bread|give_bread_to_man|give_bread_to_old_man):
    succeed: You pass the wrapped bread to the old man, holding it with your
             glove. He takes it carefully, holds it close to his chest, closes his
             eyes and whispers some prayer.

             "Great," he says. "Now I'll set up the transportation system to take
             you home. Like I said, just jump into the pool in the other room."

             He types some commands into his laptop, and for a moment you hear a
             sound of flowing water coming from the other part of the tent.

             "Go ahead," he says. "Your family and friends must be wondering where
             you are." #(done=1)#
    fail: $(!require_inventory:bread;Which bread?|
          $(!require_here:old_man;Which man?|
          $(!equals:wrapped,1;"Not like that!" says the old man. "Wrap it with
          something! Come on, it's holy bread!"|
          $(!equals:wear,1;"Not with your bare hands! says the old man. "It's
          holy, remember? Don't touch it directly!")$)$)$)$
    equals: wrapped,1
    equals: wear,1
    require_inventory: bread
    require_here: old_man

item(old_man):
    on_examine: $(equals:pressed,0;He looks very old. But he sounds younger.)$

item(laptop):
    on_examine: This a fully free-hardware and free-software laptop,
                manufactured in environment-friendly ways, and with proper
                working conditions. No slave or child labor. It can run for
                centuries, and then it can easily be fully recycled into a new
                laptop.

                When I say free hardware, I don't mean that the board design is
                free, while the components are proprietary. I mean that the
                entire thing is actually free as in freedom! Including the
                processor and the GPU and everything else.

                The design is based on lowRISC, OpenGPU, the Open Graphics
                Project, MIAOW, OpenRISC, FPGA Libre and several other
                projects.

                It is running the GNU operating system through the GNU Guix
                Software Distribution (GuixSD), and the GNU Hurd kernel.

                Taking a longer look at the screen, you recognize the GNU Xfce
                desktop, which is the continuation of Xfce after version 4.12.
                Xfce has become a GNU project and moved its UI translation
                system from the proprietary and centralized Transifex to GNU's
                Pootle instance, which is free software.

                It's not like GNOME and KDE don't deserve a chance here too.
                But they decided to tie themselves into systemd, and their own
                efforts to revert this disaster (which started after RedHat and
                Canonical became no-profits) are still in progress. Many people
                in the free software commmunity are helping them.

item(desk):
    on_examine: A desk.

action(wrap_bread|wrap_bread_in_note|wrap_bread_with_note|wrap_bread_using_note):
    succeed: You wrap the piece of bread with the note paper. #(wrapped=1)#
    require_inventory: bread, note
    lose: note
    equals: talked,1
    fail: $(require_inventory:bread,note;You could do that. But why would you?)$

action(wear_glove):
    succeed: #(wear=1)#
    require_inventory: glove
    lose: glove
    equals: talked,1
    fail: $(require_inventory:glove;You could do that. But why would you?)$

room(3.0.11):
    description: You're inside a large orange-colored tent, standing on a
                 cloud.

                 $(equals:done,1;There is a tiny pool here, filled with water.)$
                 $(equals:done,0;There is a tiny pool here, but it's empty.)$

                 To the west is the other side of the tent.
    exits: west

action(jump|jump_into_water|jump_into_pool|jump_into_the_pool|jump_into_the_water):
    succeed: #(_game_over=1)#
    equals: done,1
    fail: The pool is empty, I'm not sure it's a good idea.
